home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / compile_to_jvm38.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  59.1 KB  |  1,938 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_jvm.h"
  9. T0* r126add_comment(T126* C,T0* a1){
  10. T0* R=NULL;
  11. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  12. R=(T0*)C;
  13. }
  14. /*AF*/else {
  15. {T46*n=malloc(sizeof(*n));
  16. *n=M46;
  17. r46make(n,(T0*)C,a1);
  18. R=(T0*)n;
  19. }
  20. }
  21. /*FI*/return R;
  22. }
  23. void r126make(T126* C,T0* a1,T0* a2){
  24. C->_left_side=a1;
  25. C->_right_side=a2;
  26. }
  27. /*No:REVERSE_ASSIGNMENT.nb_errors*/
  28. T0* r126start_position(T126* C){
  29. T0* R=NULL;
  30. R=X662start_position((((T126*)C))->_left_side/*8*/);
  31. return R;
  32. }
  33. T0* r126to_runnable(T126* C,T0* a1){
  34. T0* R=NULL;
  35. T0* _e=NULL;
  36. /*IF*/if (((((T126*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  37. C->_run_compound=a1;
  38. _e=X662to_runnable((((T126*)C))->_left_side/*8*/,r126current_type(C));
  39. /*IF*/if ((_e)==((void*)(NULL))) {
  40. r126error(X662start_position((((T126*)C))->_left_side/*8*/),((T0*)ms62_470));
  41. }
  42. else {
  43. C->_left_side=_e;
  44. }
  45. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  46. _e=X662to_runnable((((T126*)C))->_right_side/*12*/,r126current_type(C));
  47. /*IF*/if ((_e)==((void*)(NULL))) {
  48. r126error(X662start_position((((T126*)C))->_right_side/*12*/),((T0*)ms63_470));
  49. }
  50. else {
  51. C->_right_side=_e;
  52. }
  53. /*FI*/}
  54. /*FI*//*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&(X291is_a(X291run_type(r126right_type(C)),X291run_type(r126left_type(C))))) {
  55. /*IF*/if ((!(X662is_current((((T126*)C))->_right_side/*12*/)))&&(!(X291is_like_current(r126left_type(C))))) {
  56. r683add_type(r126right_type(C),((T0*)ms12_126));
  57. r683add_type(r126left_type(C),((T0*)ms13_126));
  58. r126warning(r126start_position(C),((T0*)ms14_126));
  59. }
  60. /*FI*/}
  61. /*FI*//*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  62. /*]*/
  63. r38clear(((T38*)(oBC683positions)));
  64. /*]*/
  65. /*IF*/if (!(X291is_reference(X291run_type(r126left_type(C))))) {
  66. r683add_type(X291run_type(r126left_type(C)),((T0*)ms15_126));
  67. r126error(r126start_position(C),((T0*)ms16_126));
  68. }
  69. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  70. R=(T0*)C;
  71. }
  72. /*FI*/}
  73. else {
  74. {T126*n=malloc(sizeof(*n));
  75. *n=M126;
  76. r126make(n,(((T126*)C))->_left_side/*8*/,(((T126*)C))->_right_side/*12*/);
  77. R=(T0*)n;
  78. }
  79. R=r126to_runnable(((T126*)R),a1);
  80. }
  81. /*FI*/return R;
  82. }
  83. T0* r126right_type(T126* C){
  84. T0* R=NULL;
  85. R=X662result_type((((T126*)C))->_right_side/*12*/);
  86. return R;
  87. }
  88. /*No:REVERSE_ASSIGNMENT.left_side*/
  89. T0* r126current_type(T126* C){
  90. T0* R=NULL;
  91. /*IF*/if (((((T126*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  92. R=(((T592*)((T592*)((((T126*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  93. }
  94. /*FI*/return R;
  95. }
  96. /*No:REVERSE_ASSIGNMENT.run_compound*/
  97. void r126compile_to_jvm(T126* C){
  98. T0* _ca=NULL;
  99. int _i=0;
  100. int _idx=0;
  101. int _point1=0;
  102. T0* _rc=NULL;
  103. T0* _run=NULL;
  104. _ca=oBC364code_attribute;
  105. /*IF*/if (X291is_expanded(X291run_type(r126right_type(C)))) {
  106. r683add_position(r126start_position(C));
  107. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms11_126);
  108. r683fatal_error(((T683*)(oBC364eh)),b1);
  109. }/*]*/
  110. }
  111. /*FI*/_run=(((T355*)((T355*)(X291run_class(r126left_type(C))))))->_running/*12*/;
  112. /*IF*/if (((_run)==((void*)(NULL)))||(r396empty(((T396*)_run)))) {
  113. X662compile_to_jvm((((T126*)C))->_right_side/*12*/);
  114. /*[IRF3.4opcode_pop*/r256opcode(((T256*)_ca),87,-(1));
  115. /*]*/
  116. /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)_ca),1,1);
  117. /*]*/
  118. X662jvm_assign((((T126*)C))->_left_side/*8*/);
  119. }
  120. else {
  121. X662compile_to_jvm((((T126*)C))->_right_side/*12*/);
  122. /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
  123. /*]*/
  124. _point1=r256opcode_ifnull(((T256*)_ca));
  125. /*[IRF3.3clear*/((((T226*)(((T226*)(oBC256branches)))))->_upper)=(-(1));
  126. /*]*/
  127. _i=(((T396*)((T396*)_run)))->_upper/*8*/;
  128. while (!((_i)==(0))) {
  129. /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1);
  130. /*]*/
  131. _rc=r396item(((T396*)_run),_i);
  132. _idx=r355fully_qualified_constant_pool_index(((T355*)_rc));
  133. r256opcode_instanceof(((T256*)_ca),_idx);
  134. r226add_last(((T226*)(oBC256branches)),r256opcode_ifne(((T256*)_ca)));
  135. _i=(_i)-(1);
  136. }
  137. /*[IRF3.4opcode_pop*/r256opcode(((T256*)_ca),87,-(1));
  138. /*]*/
  139. /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)_ca),1,1);
  140. /*]*/
  141. r256resolve_u2_branch(_point1);
  142. /*[IRF3.2resolve_branches*/r256resolve_with(oBC256branches);
  143. /*]*/
  144. X662jvm_assign((((T126*)C))->_left_side/*8*/);
  145. }
  146. /*FI*/}
  147. /*No:REVERSE_ASSIGNMENT.is_pre_computable*/
  148. int r126use_current(T126* C){
  149. int R=0;
  150. /*IF*/if (X662use_current((((T126*)C))->_left_side/*8*/)) {
  151. R=1;
  152. }
  153. else {
  154. R=X662use_current((((T126*)C))->_right_side/*12*/);
  155. }
  156. /*FI*/return R;
  157. }
  158. /*No:REVERSE_ASSIGNMENT.right_side*/
  159. /*No:REVERSE_ASSIGNMENT.fz_blhsoa*/
  160. /*No:REVERSE_ASSIGNMENT.fz_brhsoa*/
  161. void r126error(T0* a1,T0* a2){
  162. r683add_position(a1);
  163. r683error(((T683*)(oBC364eh)),a2);
  164. }
  165. /*No:REVERSE_ASSIGNMENT.fatal_error*/
  166. /*No:REVERSE_ASSIGNMENT.end_mark_comment*/
  167. void r126afd_check(T126* C){
  168. X662afd_check((((T126*)C))->_right_side/*12*/);
  169. }
  170. T0* r126left_type(T126* C){
  171. T0* R=NULL;
  172. R=X662result_type((((T126*)C))->_left_side/*8*/);
  173. return R;
  174. }
  175. void r126warning(T0* a1,T0* a2){
  176. r683add_position(a1);
  177. r683warning(((T683*)(oBC364eh)),a2);
  178. }
  179. /*No:E_INSPECT.else_position*/
  180. T0* r270add_comment(T270* C,T0* a1){
  181. T0* R=NULL;
  182. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  183. R=(T0*)C;
  184. }
  185.  else {/*AT*//*IF*/if ((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(1)) {
  186. R=(T0*)C;
  187. }
  188. else {
  189. {T46*n=malloc(sizeof(*n));
  190. *n=M46;
  191. r46make(n,(T0*)C,a1);
  192. R=(T0*)n;
  193. }
  194. }
  195. /*FI*/}
  196. /*FI*/return R;
  197. }
  198. /*No:E_INSPECT.when_list*/
  199. void r270add_when(T270* C,T0* a1){
  200. /*IF*/if (((((T270*)C))->_when_list/*16*/)==((void*)(NULL))) {
  201. {T377*n=malloc(sizeof(*n));
  202. *n=M377;
  203. /*[IRF3.3make*/((((T377*)(n)))->_list)=(se_ma147(1,a1));
  204. /*]*/
  205. C->_when_list=(T0*)n;
  206. }
  207. }
  208. else {
  209. /*[IRF3.5add_last*/r147add_last(((T147*)((((T377*)((T377*)((((T270*)C))->_when_list/*16*/))))->_list/*4*/)),a1);
  210. /*]*/
  211. }
  212. /*FI*/}
  213. void r270make(T270* C,T0* a1,T0* a2){
  214. C->_start_position=a1;
  215. C->_expression=a2;
  216. }
  217. /*No:E_INSPECT.nb_errors*/
  218. /*No:E_INSPECT.expression*/
  219. void r270set_else_compound(T270* C,T0* a1,T0* a2){
  220. C->_else_position=a1;
  221. C->_else_compound=a2;
  222. }
  223. /*No:E_INSPECT.set_run_compound*/
  224. /*No:E_INSPECT.start_position*/
  225. /*No:E_INSPECT.includes*/
  226. T0* r270to_runnable(T270* C,T0* a1){
  227. T0* R=NULL;
  228. T0* _wl=NULL;
  229. T0* _te=NULL;
  230. T0* _e=NULL;
  231. /*IF*/if (((((T270*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  232. C->_run_compound=a1;
  233. _e=X662to_runnable((((T270*)C))->_expression/*12*/,r270current_type(C));
  234. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  235. C->_expression=_e;
  236. _te=X291run_type(X662result_type(_e));
  237. }
  238. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  239. /*IF*/if (X291is_character(_te)) {
  240. /*IF*/if (((((T270*)C))->_when_list/*16*/)!=((void*)(NULL))) {
  241. C->_when_list=r377to_runnable_character(((T377*)((((T270*)C))->_when_list/*16*/)),(T0*)C);
  242. /*IF*/if (((((T270*)C))->_when_list/*16*/)==((void*)(NULL))) {
  243. r270error((((T270*)C))->_start_position/*8*/,((T0*)ms5_270));
  244. }
  245. /*FI*/}
  246. /*FI*/}
  247.  else if (X291is_integer(_te)) {
  248. /*IF*/if (((((T270*)C))->_when_list/*16*/)!=((void*)(NULL))) {
  249. C->_when_list=r377to_runnable_integer(((T377*)((((T270*)C))->_when_list/*16*/)),(T0*)C);
  250. /*IF*/if (((((T270*)C))->_when_list/*16*/)==((void*)(NULL))) {
  251. r270error((((T270*)C))->_start_position/*8*/,((T0*)ms5_270));
  252. }
  253. /*FI*/}
  254. /*FI*/}
  255. else {
  256. /*[IRF3.6append*/{T0* b1=((T0*)ms2_270);
  257. r7append(((T7*)(oBC683explanation)),b1);
  258. }/*]*/
  259. r683add_type(_te,((T0*)ms3_270));
  260. r683add_position((((T270*)C))->_start_position/*8*/);
  261. r683print_as_error(((T683*)(oBC364eh)));
  262. }
  263. /*FI*/}
  264. /*FI*//*IF*/if (((((T270*)C))->_else_compound/*24*/)!=((void*)(NULL))) {
  265. C->_else_compound=r592to_runnable(((T592*)((((T270*)C))->_else_compound/*24*/)),r270current_type(C));
  266. }
  267. /*FI*/R=(T0*)C;
  268. }
  269. else {
  270. R=r270twin(C);
  271. {T377*n=malloc(sizeof(*n));
  272. *n=M377;
  273. r377from_when_list(n,(((T270*)C))->_when_list/*16*/);
  274. _wl=(T0*)n;
  275. }
  276. /*[IRF3.3set_when_list*/((((T270*)(((T270*)R))))->_when_list)=(_wl);
  277. /*]*/
  278. /*[IRF3.3set_run_compound*/((((T270*)(((T270*)R))))->_run_compound)=(NULL);
  279. /*]*/
  280. R=r270to_runnable(((T270*)R),a1);
  281. }
  282. /*FI*/return R;
  283. }
  284. T0* r270twin(T270* C){
  285. T0* R=NULL;
  286. R=malloc(sizeof(*C));
  287. *((T270*)R)=*C;
  288. return R;
  289. }
  290. /*No:E_INSPECT.em1*/
  291. /*No:E_INSPECT.else_compound*/
  292. /*No:E_INSPECT.set_when_list*/
  293. T0* r270current_type(T270* C){
  294. T0* R=NULL;
  295. /*IF*/if (((((T270*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  296. R=(((T592*)((T592*)((((T270*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  297. }
  298. /*FI*/return R;
  299. }
  300. /*No:E_INSPECT.run_compound*/
  301. void r270compile_to_jvm(T270* C){
  302. X662compile_to_jvm((((T270*)C))->_expression/*12*/);
  303. /*IF*/if (((((T270*)C))->_when_list/*16*/)!=((void*)(NULL))) {
  304. r377compile_to_jvm(((T377*)((((T270*)C))->_when_list/*16*/)),(((T270*)C))->_else_position/*20*/);
  305. }
  306. /*FI*//*IF*/if (((((T270*)C))->_else_compound/*24*/)!=((void*)(NULL))) {
  307. /*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
  308. }
  309. /*FI*/r592compile_to_jvm(((T592*)((((T270*)C))->_else_compound/*24*/)));
  310. }
  311. /*FI*//*IF*/if (((((T270*)C))->_when_list/*16*/)!=((void*)(NULL))) {
  312. r377compile_to_jvm_resolve_branch(((T377*)((((T270*)C))->_when_list/*16*/)));
  313. }
  314. /*FI*//*[IRF3.4opcode_pop*/r256opcode(((T256*)(oBC364code_attribute)),87,-(1));
  315. /*]*/
  316. }
  317. /*No:E_INSPECT.is_pre_computable*/
  318. int r270use_current(T270* C){
  319. int R=0;
  320. R=(R)||(X662use_current((((T270*)C))->_expression/*12*/));
  321. /*IF*/if (((((T270*)C))->_when_list/*16*/)!=((void*)(NULL))) {
  322. R=(R)||(r377use_current(((T377*)((((T270*)C))->_when_list/*16*/))));
  323. }
  324. /*FI*//*IF*/if (((((T270*)C))->_else_compound/*24*/)!=((void*)(NULL))) {
  325. R=(R)||(r592use_current(((T592*)((((T270*)C))->_else_compound/*24*/))));
  326. }
  327. /*FI*/return R;
  328. }
  329. void r270error(T0* a1,T0* a2){
  330. r683add_position(a1);
  331. r683error(((T683*)(oBC364eh)),a2);
  332. }
  333. /*No:E_INSPECT.end_mark_comment*/
  334. void r270afd_check(T270* C){
  335. X662afd_check((((T270*)C))->_expression/*12*/);
  336. /*IF*/if (((((T270*)C))->_when_list/*16*/)!=((void*)(NULL))) {
  337. r377afd_check(((T377*)((((T270*)C))->_when_list/*16*/)));
  338. }
  339. /*FI*//*IF*/if (((((T270*)C))->_else_compound/*24*/)!=((void*)(NULL))) {
  340. r592afd_check(((T592*)((((T270*)C))->_else_compound/*24*/)));
  341. }
  342. /*FI*/}
  343. /*No:ONCE_FUNCTION.arguments*/
  344. T0* r844try_to_undefine(T844* C,T0* a1,T0* a2){
  345. T0* R=NULL;
  346. X776undefine_in(a1,a2);
  347. R=r844try_to_undefine_aux(C,a1,a2);
  348. /*IF*/if ((R)!=((void*)(NULL))) {
  349. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T844*)C))->_clients/*24*/);
  350. /*]*/
  351. }
  352. else {
  353. r605fatal_undefine(((T605*)a2),a1);
  354. }
  355. /*FI*/return R;
  356. }
  357. /*No:ONCE_FUNCTION.is_deferred*/
  358. /*No:ONCE_FUNCTION.fz_bad_assertion*/
  359. T0* r844runnable(T0* a1,T0* a2,T0* a3){
  360. T0* R=NULL;
  361. T0* _a=NULL;
  362. int _i=0;
  363. /*IF*/if (!(r608empty(((T608*)a1)))) {
  364. R=r608twin(((T608*)a1));
  365. _i=(((T608*)((T608*)R)))->_upper/*8*/;
  366. while (!((_i)==(0))) {
  367. r604push(((T604*)(oBC364small_eiffel)),a3);
  368. _a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
  369. /*IF*/if ((_a)==((void*)(NULL))) {
  370. r844error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
  371. }
  372. else {
  373. /*[IRF3.6put*/{T608* C1=((T608*)R);
  374. T0* b1=_a;
  375. int b2=_i;
  376. ((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
  377. }/*]*/
  378. }
  379. /*FI*/r604pop(((T604*)(oBC364small_eiffel)));
  380. _i=(_i)-(1);
  381. }
  382. }
  383. /*FI*/return R;
  384. }
  385. /*No:ONCE_FUNCTION.rescue_compound*/
  386. void r844add_into(T844* C,T0* a1){
  387. T0* _fn=NULL;
  388. int _i=0;
  389. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  390. _i=1;
  391. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  392. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  393. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  394. _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  395. r683add_position(X776start_position(_fn));
  396. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  397. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  398. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  399. r7append(((T7*)(oBC683explanation)),b1);
  400. }/*]*/
  401. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  402. }
  403. else {
  404. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  405. }
  406. /*FI*/_i=(_i)+(1);
  407. }
  408. }
  409. /*No:ONCE_FUNCTION.end_comment*/
  410. T0* r844try_to_undefine_aux(T844* C,T0* a1,T0* a2){
  411. T0* R=NULL;
  412. {T649*n=malloc(sizeof(*n));
  413. *n=M649;
  414. r649from_effective(n,a1,(((T844*)C))->_arguments/*28*/,(((T844*)C))->_result_type/*12*/,(((T844*)C))->_require_assertion/*36*/,(((T844*)C))->_ensure_assertion/*40*/,a2);
  415. R=(T0*)n;
  416. }
  417. return R;
  418. }
  419. void r844make(T844* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
  420. r844make_effective_routine(C,a1,a2,a4,a5,a6,a7,a8);
  421. C->_result_type=a3;
  422. }
  423. /*No:ONCE_FUNCTION.not_computed*/
  424. /*No:ONCE_FUNCTION.nb_errors*/
  425. void r844make_routine(T844* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  426. r844make_e_feature(C,a1,NULL);
  427. C->_header_comment=a4;
  428. C->_arguments=a2;
  429. C->_obsolete_mark=a3;
  430. C->_require_assertion=a5;
  431. }
  432. /*No:ONCE_FUNCTION.local_vars*/
  433. void r844set_header_comment(T844* C,T0* a1){
  434. /*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
  435. C->_end_comment=a1;
  436. }
  437. /*FI*/}
  438. T0* r844start_position(T844* C){
  439. T0* R=NULL;
  440. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  441. return R;
  442. }
  443. T0* r844to_run_feature(T844* C,T0* a1,T0* a2){
  444. T0* R=NULL;
  445. r844check_obsolete(C);
  446. {T868*n=malloc(sizeof(*n));
  447. *n=M868;
  448. r868make(n,a1,a2,(T0*)C);
  449. R=(T0*)n;
  450. }
  451. return R;
  452. }
  453. /*No:ONCE_FUNCTION.ensure_assertion*/
  454. /*No:ONCE_FUNCTION.code_require*/
  455. T0* r844run_ensure(T0* a1){
  456. T0* R=NULL;
  457. T0* _r=NULL;
  458. r608clear(((T608*)(oBC359assertion_collector)));
  459. /*[IRF3.3clear*/{T0* _default_item=NULL;
  460. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  461. }/*]*/
  462. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
  463. _r=r844runnable(oBC359assertion_collector,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
  464. /*IF*/if ((_r)!=((void*)(NULL))) {
  465. {T633*n=malloc(sizeof(*n));
  466. *n=M633;
  467. r633from_runnable(n,_r);
  468. R=(T0*)n;
  469. }
  470. /*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
  471. /*]*/
  472. /*[IRF3.3clear*/{T0* _default_item=NULL;
  473. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  474. }/*]*/
  475. }
  476. /*FI*/return R;
  477. }
  478. T0* r844run_require(T0* a1){
  479. T0* R=NULL;
  480. T0* _ar=NULL;
  481. T0* _hc=NULL;
  482. T0* _er=NULL;
  483. T0* _r=NULL;
  484. int _i=0;
  485. r522clear(((T522*)(oBC359require_collector)));
  486. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
  487. /*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
  488. _i=1;
  489. while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
  490. _er=r522item(((T522*)(oBC359require_collector)),_i);
  491. _hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
  492. /*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
  493. _r=r844runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
  494. /*IF*/if ((_r)!=((void*)(NULL))) {
  495. {T343*n=malloc(sizeof(*n));
  496. *n=M343;
  497. r343from_runnable(n,_r);
  498. _er=(T0*)n;
  499. }
  500. /*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
  501. /*]*/
  502. /*IF*/if ((_ar)==((void*)(NULL))) {
  503. _ar=se_ma522(1,_er);
  504. }
  505. else {
  506. r522add_last(((T522*)_ar),_er);
  507. }
  508. /*FI*/}
  509. /*FI*/}
  510. /*FI*/_i=(_i)+(1);
  511. }
  512. /*IF*/if ((_ar)!=((void*)(NULL))) {
  513. {T567*n=malloc(sizeof(*n));
  514. *n=M567;
  515. /*[IRF3.3make*/((((T567*)(n)))->_list)=(_ar);
  516. /*]*/
  517. R=(T0*)n;
  518. }
  519. }
  520. /*FI*/}
  521. /*FI*/return R;
  522. }
  523. /*No:ONCE_FUNCTION.result_type*/
  524. /*No:ONCE_FUNCTION.fz_03*/
  525. /*No:ONCE_FUNCTION.em1*/
  526. /*No:ONCE_FUNCTION.obsolete_mark*/
  527. /*No:ONCE_FUNCTION.set_clients*/
  528. /*No:ONCE_FUNCTION.em2*/
  529. /*No:ONCE_FUNCTION.names*/
  530. /*No:ONCE_FUNCTION.require_assertion*/
  531. /*No:ONCE_FUNCTION.use_current_state*/
  532. /*No:ONCE_FUNCTION.code_ensure*/
  533. void r844set_rescue_compound(T844* C,T0* a1){
  534. /*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
  535. r844error(r844start_position(C),((T0*)ms6_368));
  536. }
  537. /*FI*/C->_rescue_compound=a1;
  538. }
  539. int r844can_hide(T844* C,T0* a1,T0* a2){
  540. int R=0;
  541. /*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  542. /*IF*/if ((((((T844*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  543. r683add_position(X359start_position(a1));
  544. r844error(r844start_position(C),((T0*)ms5_359));
  545. }
  546. /*FI*/}
  547. /*FI*//*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
  548. /*IF*/if ((((((T844*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  549. r683add_position(X359start_position(a1));
  550. r844error(r844start_position(C),((T0*)ms6_359));
  551. }
  552.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T844*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  553. r683add_position(X359start_position(a1));
  554. r844error(r844start_position(C),((T0*)ms7_359));
  555. }
  556. /*FI*/}
  557. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  558. /*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  559. /*IF*/if (!(X291is_a_in((((T844*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  560. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  561. r7append(((T7*)(oBC683explanation)),b1);
  562. }/*]*/
  563. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  564. r7append(((T7*)(oBC683explanation)),b1);
  565. }/*]*/
  566. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  567. }
  568. /*FI*/}
  569. /*FI*/}
  570. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  571. /*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(NULL))) {
  572. /*IF*/if (!(r31is_a_in(((T31*)((((T844*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
  573. r683add_position(X359start_position(a1));
  574. r683add_position(r844start_position(C));
  575. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  576. r7append(((T7*)(oBC683explanation)),b1);
  577. }/*]*/
  578. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  579. r7append(((T7*)(oBC683explanation)),b1);
  580. }/*]*/
  581. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  582. }
  583. /*FI*/}
  584. /*FI*/}
  585. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  586. return R;
  587. }
  588. /*No:ONCE_FUNCTION.header_comment*/
  589. /*No:ONCE_FUNCTION.routine_body*/
  590. int r844is_merge_with(T844* C,T0* a1,T0* a2){
  591. int R=0;
  592. /*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  593. /*IF*/if ((((((T844*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  594. r683add_position(X359start_position(a1));
  595. r844error(r844start_position(C),((T0*)ms2_359));
  596. }
  597. /*FI*/}
  598. /*FI*//*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
  599. /*IF*/if ((((((T844*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  600. r683add_position(X359start_position(a1));
  601. r844error(r844start_position(C),((T0*)ms3_359));
  602. }
  603.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T844*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  604. r683add_position(X359start_position(a1));
  605. r844error(r844start_position(C),((T0*)ms4_359));
  606. }
  607. /*FI*/}
  608. /*FI*//*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  609. /*IF*/if (!(X291is_a_in((((T844*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  610. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  611. }
  612. /*FI*/}
  613. /*FI*//*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(NULL))) {
  614. /*IF*/if (!(r31is_a_in(((T31*)((((T844*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
  615. r683add_position(X359start_position(a1));
  616. r844error(r844start_position(C),((T0*)ms12_359));
  617. }
  618. /*FI*/}
  619. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  620. return R;
  621. }
  622. /*No:ONCE_FUNCTION.fz_dot*/
  623. /*No:ONCE_FUNCTION.set_ensure_assertion*/
  624. /*No:ONCE_FUNCTION.first_name*/
  625. /*No:ONCE_FUNCTION.clients*/
  626. void r844collect_for(T844* C,int a1){
  627. /*IF*/if ((a1)==(1001)) {
  628. /*IF*/if (((((T844*)C))->_require_assertion/*36*/)!=((void*)(NULL))) {
  629. /*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T844*)C))->_require_assertion/*36*/))) {
  630. r522add_last(((T522*)(oBC359require_collector)),(((T844*)C))->_require_assertion/*36*/);
  631. }
  632. /*FI*/}
  633. /*FI*/}
  634. else {
  635. /*IF*/if (((((T844*)C))->_ensure_assertion/*40*/)!=((void*)(NULL))) {
  636. /*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T844*)C))->_ensure_assertion/*40*/))))->_header_comment/*4*/);
  637. /*]*/
  638. r633add_into(((T633*)((((T844*)C))->_ensure_assertion/*40*/)),oBC359assertion_collector);
  639. }
  640. /*FI*/}
  641. /*FI*/}
  642. void r844make_effective_routine(T844* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
  643. r844make_routine(C,a1,a2,a3,a4,a5);
  644. C->_local_vars=a6;
  645. C->_routine_body=a7;
  646. C->_use_current_state=1024;
  647. }
  648. void r844error(T0* a1,T0* a2){
  649. r683add_position(a1);
  650. r683error(((T683*)(oBC364eh)),a2);
  651. }
  652. /*No:ONCE_FUNCTION.base_class*/
  653. void r844make_e_feature(T844* C,T0* a1,T0* a2){
  654. C->_names=a1;
  655. C->_result_type=a2;
  656. }
  657. void r844check_obsolete(T844* C){
  658. /*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
  659. /*IF*/if (((((T844*)C))->_obsolete_mark/*32*/)!=((void*)(NULL))) {
  660. /*[IRF3.6append*/{T0* b1=((T0*)ms7_368);
  661. r7append(((T7*)(oBC683explanation)),b1);
  662. }/*]*/
  663. /*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T844*)C))->_obsolete_mark/*32*/))))->_to_string/*16*/;
  664. r7append(((T7*)(oBC683explanation)),b1);
  665. }/*]*/
  666. r844warning(r844start_position(C),((T0*)ms137_470));
  667. }
  668. /*FI*/}
  669. /*FI*/}
  670. void r844warning(T0* a1,T0* a2){
  671. r683add_position(a1);
  672. r683warning(((T683*)(oBC364eh)),a2);
  673. }
  674. /*No:RUN_FEATURE_3.arguments*/
  675. /*No:RUN_FEATURE_3.ucs_true*/
  676. void r832routine_mapping_jvm(T832* C){
  677. int _stack_level=0;
  678. int _idx=0;
  679. T0* _ct=NULL;
  680. T0* _rt=NULL;
  681. _ct=(((T832*)C))->_current_type/*4*/;
  682. r228push_target_as_target(((T228*)(oBC364jvm)));
  683. _stack_level=-((1)+(r228push_arguments(((T228*)(oBC364jvm)))));
  684. _rt=(((T832*)C))->_result_type/*24*/;
  685. /*IF*/if ((_rt)!=((void*)(NULL))) {
  686. _stack_level=(_stack_level)+(X291jvm_stack_space(_rt));
  687. }
  688. /*FI*/_idx=r95idx_methodref(((T95*)(oBC364constant_pool)),(T0*)C);
  689. r355jvm_invoke(((T355*)(X291run_class(_ct))),_idx,_stack_level);
  690. }
  691. /*No:RUN_FEATURE_3.actuals_clients*/
  692. T0* r832jvm_descriptor(T832* C){
  693. T0* R=NULL;
  694. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC496tmp_jvm_descriptor)))))->_count)=(0);
  695. /*]*/
  696. /*[IRF3.4update_tmp_jvm_descriptor*/r832routine_update_tmp_jvm_descriptor(C);
  697. /*]*/
  698. R=oBC496tmp_jvm_descriptor;
  699. return R;
  700. }
  701. void r832method_info_start(T832* C){
  702. int _flags=0;
  703. _flags=X291jvm_method_flags((((T832*)C))->_current_type/*4*/);
  704. r506start(((T506*)(oBC364method_info)),_flags,X776to_key((((T832*)C))->_name/*16*/),r832jvm_descriptor(C));
  705. }
  706. /*No:RUN_FEATURE_3.ucs_in_computation*/
  707. void r832routine_update_tmp_jvm_descriptor(T832* C){
  708. T0* _rt=NULL;
  709. T0* _ct=NULL;
  710. r7extend(((T7*)(oBC496tmp_jvm_descriptor)),'\50');
  711. _ct=(((T832*)C))->_current_type/*4*/;
  712. X291jvm_target_descriptor_in(_ct,oBC496tmp_jvm_descriptor);
  713. /*IF*/if (((((T832*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  714. r31jvm_descriptor_in(((T31*)((((T832*)C))->_arguments/*20*/)),oBC496tmp_jvm_descriptor);
  715. }
  716. /*FI*/_rt=(((T832*)C))->_result_type/*24*/;
  717. /*IF*/if ((_rt)==((void*)(NULL))) {
  718. r7append(((T7*)(oBC496tmp_jvm_descriptor)),((T0*)ms153_470));
  719. }
  720. else {
  721. _rt=X291run_type(_rt);
  722. r7extend(((T7*)(oBC496tmp_jvm_descriptor)),'\51');
  723. X291jvm_descriptor_in(_rt,oBC496tmp_jvm_descriptor);
  724. }
  725. /*FI*/}
  726. void r832make(T832* C,T0* a1,T0* a2,T0* a3){
  727. C->_current_type=a1;
  728. C->_name=a2;
  729. C->_base_feature=a3;
  730. r199put(((T199*)((((T355*)((T355*)(r832run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
  731. r604incr_magic_count(((T604*)(oBC364small_eiffel)));
  732. C->_use_current_state=1005;
  733. r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
  734. r832initialize(C);
  735. r604pop(((T604*)(oBC364small_eiffel)));
  736. }
  737. void r832std_compute_use_current(T832* C){
  738. /*IF*/if (((((T832*)C))->_use_current_state/*40*/)==(1006)) {
  739. /*IF*/if (((((T832*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  740. /*IF*/if (r567use_current(((T567*)((((T832*)C))->_require_assertion/*28*/)))) {
  741. C->_use_current_state=1004;
  742. }
  743. /*FI*/}
  744. /*FI*/}
  745. /*FI*//*IF*/if (((((T832*)C))->_use_current_state/*40*/)==(1006)) {
  746. /*IF*/if (((((T832*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  747. /*IF*/if (r592use_current(((T592*)((((T832*)C))->_routine_body/*32*/)))) {
  748. C->_use_current_state=1004;
  749. }
  750. /*FI*/}
  751. /*FI*/}
  752. /*FI*//*IF*/if (((((T832*)C))->_use_current_state/*40*/)==(1006)) {
  753. /*IF*/if (((((T832*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  754. /*IF*/if (r633use_current(((T633*)((((T832*)C))->_ensure_assertion/*36*/)))) {
  755. C->_use_current_state=1004;
  756. }
  757. /*FI*/}
  758. /*FI*/}
  759. /*FI*//*IF*/if (((((T832*)C))->_use_current_state/*40*/)==(1006)) {
  760. C->_use_current_state=1003;
  761. }
  762. /*FI*/}
  763. /*No:RUN_FEATURE_3.name*/
  764. int r832arg_count(T832* C){
  765. int R=0;
  766. /*IF*/if (((((T832*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  767. R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T832*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  768. }
  769. /*FI*/return R;
  770. }
  771. void r832routine_afd_check(T832* C){
  772. /*IF*/if (((((T832*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  773. r567afd_check(((T567*)((((T832*)C))->_require_assertion/*28*/)));
  774. }
  775. /*FI*//*IF*/if (((((T832*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  776. r592afd_check(((T592*)((((T832*)C))->_routine_body/*32*/)));
  777. }
  778. /*FI*//*IF*/if (((((T832*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  779. r633afd_check(((T633*)((((T832*)C))->_ensure_assertion/*36*/)));
  780. }
  781. /*FI*/}
  782. /*No:RUN_FEATURE_3.local_vars*/
  783. /*No:RUN_FEATURE_3.base_feature*/
  784. /*No:RUN_FEATURE_3.start_position*/
  785. /*No:RUN_FEATURE_3.do_not_inline*/
  786. int r832jvm_max_locals(T832* C){
  787. int R=0;
  788. R=X291jvm_stack_space((((T832*)C))->_current_type/*4*/);
  789. /*IF*/if (((((T832*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  790. R=(R)+(r31jvm_stack_space(((T31*)((((T832*)C))->_arguments/*20*/))));
  791. }
  792. /*FI*//*IF*/if (((((T832*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
  793. R=(R)+(r620jvm_stack_space(((T620*)((((T832*)C))->_local_vars/*48*/))));
  794. }
  795. /*FI*//*IF*/if (((((T832*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  796. R=(R)+(X291jvm_stack_space((((T832*)C))->_result_type/*24*/));
  797. }
  798. /*FI*/return R;
  799. }
  800. int r832jvm_result_offset(T832* C){
  801. int R=0;
  802. R=X291jvm_stack_space((((T832*)C))->_current_type/*4*/);
  803. /*IF*/if (((((T832*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  804. R=(R)+(r31jvm_stack_space(((T31*)((((T832*)C))->_arguments/*20*/))));
  805. }
  806. /*FI*//*IF*/if (((((T832*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
  807. R=(R)+(r620jvm_stack_space(((T620*)((((T832*)C))->_local_vars/*48*/))));
  808. }
  809. /*FI*/return R;
  810. }
  811. /*No:RUN_FEATURE_3.ensure_assertion*/
  812. int r832is_exported_in(T832* C,T0* a1){
  813. int R=0;
  814. R=r636gives_permission_to(((T636*)(r832clients(C))),a1);
  815. return R;
  816. }
  817. void r832jvm_define_opening(T832* C){
  818. T0* _t=NULL;
  819. /*IF*/if (((((T832*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  820. _t=X291run_type((((T832*)C))->_result_type/*24*/);
  821. X291jvm_initialize_local(_t,r832jvm_result_offset(C));
  822. }
  823. /*FI*//*IF*/if (((((T832*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
  824. r620jvm_initialize(((T620*)((((T832*)C))->_local_vars/*48*/)));
  825. }
  826. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  827. /*IF*/if (((((T832*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  828. r633compile_to_jvm_old(((T633*)((((T832*)C))->_ensure_assertion/*36*/)));
  829. }
  830. /*FI*/}
  831. /*FI*//*IF*/if (((((T832*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  832. r567compile_to_jvm(((T567*)((((T832*)C))->_require_assertion/*28*/)));
  833. }
  834. /*FI*/}
  835. void r832compute_use_current(T832* C){
  836. /*IF*/if ((X291is_reference((((T832*)C))->_current_type/*4*/))&&(r590no_check(((T590*)(oBC364run_control))))) {
  837. C->_use_current_state=1004;
  838. }
  839. else {
  840. r832std_compute_use_current(C);
  841. }
  842. /*FI*/}
  843. /*No:RUN_FEATURE_3.result_type*/
  844. /*No:RUN_FEATURE_3.jvm_field_or_method*/
  845. int r832jvm_argument_offset(T832* C,T0* a1){
  846. int R=0;
  847. R=X291jvm_stack_space((((T832*)C))->_current_type/*4*/);
  848. R=(R)+(r31jvm_offset_of(((T31*)((((T832*)C))->_arguments/*20*/)),a1));
  849. return R;
  850. }
  851. /*No:RUN_FEATURE_3.in_line_status*/
  852. /*No:RUN_FEATURE_3.is_static*/
  853. void r832add_client(T832* C,T0* a1){
  854. int _i=0;
  855. /*IF*/if (((((T832*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
  856. {T187*n=malloc(sizeof(*n));
  857. *n=M187;
  858. r187with_capacity(n,4);
  859. C->_actuals_clients=(T0*)n;
  860. }
  861. r187add_last(((T187*)((((T832*)C))->_actuals_clients/*12*/)),a1);
  862. }
  863. else {
  864. _i=r187fast_index_of(((T187*)((((T832*)C))->_actuals_clients/*12*/)),a1);
  865. /*IF*/if ((_i)>((((T187*)((T187*)((((T832*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
  866. r187add_last(((T187*)((((T832*)C))->_actuals_clients/*12*/)),a1);
  867. }
  868. /*FI*/}
  869. /*FI*/r355add_client(((T355*)(r832run_class(C))),a1);
  870. }
  871. /*No:RUN_FEATURE_3.require_assertion*/
  872. /*No:RUN_FEATURE_3.use_current_state*/
  873. /*No:RUN_FEATURE_3.can_be_dropped*/
  874. void r832jvm_define_closing(T832* C){
  875. /*IF*/if (r832use_current(C)) {
  876. }
  877. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  878. /*IF*/if (((((T832*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  879. r633compile_to_jvm(((T633*)((((T832*)C))->_ensure_assertion/*36*/)),1);
  880. }
  881. /*FI*/}
  882. /*FI*//*IF*/if (((((T832*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  883. X291jvm_push_local((((T832*)C))->_result_type/*24*/,r832jvm_result_offset(C));
  884. }
  885. /*FI*/}
  886. /*No:RUN_FEATURE_3.mapping_jvm*/
  887. /*No:RUN_FEATURE_3.current_type*/
  888. T0* r832run_class(T832* C){
  889. T0* R=NULL;
  890. R=X291run_class((((T832*)C))->_current_type/*4*/);
  891. return R;
  892. }
  893. /*No:RUN_FEATURE_3.static_value_mem*/
  894. /*No:RUN_FEATURE_3.fz_19*/
  895. /*No:RUN_FEATURE_3.ucs_not_computed*/
  896. void r832fall_down(T832* C){
  897. T0* _rf=NULL;
  898. T0* _sub_name=NULL;
  899. T0* _sub_bc=NULL;
  900. T0* _current_bc=NULL;
  901. T0* _sub_rc=NULL;
  902. T0* _current_rc=NULL;
  903. int _i=0;
  904. T0* _running=NULL;
  905. _current_rc=X291run_class((((T832*)C))->_current_type/*4*/);
  906. _running=(((T355*)((T355*)_current_rc)))->_running/*12*/;
  907. /*IF*/if ((_running)!=((void*)(NULL))) {
  908. _current_bc=X291base_class((((T832*)C))->_current_type/*4*/);
  909. _i=(((T396*)((T396*)_running)))->_lower/*12*/;
  910. while (!((_i)>((((T396*)((T396*)_running)))->_upper/*8*/))) {
  911. _sub_rc=r396item(((T396*)_running),_i);
  912. /*IF*/if ((_sub_rc)!=((void*)(_current_rc))) {
  913. _sub_bc=X291base_class((((T355*)((T355*)_sub_rc)))->_current_type/*0*/);
  914. _sub_name=r605new_name_of(((T605*)_sub_bc),_current_bc,(((T832*)C))->_name/*16*/);
  915. _rf=r355get_feature(((T355*)_sub_rc),_sub_name);
  916. }
  917. /*FI*/_i=(_i)+(1);
  918. }
  919. }
  920. /*FI*/}
  921. /*No:RUN_FEATURE_3.routine_body*/
  922. /*No:RUN_FEATURE_3.ucs_false*/
  923. int r832is_pre_computable(T832* C){
  924. int R=0;
  925. /*IF*/if (((((T832*)C))->_arguments/*20*/)==((void*)(NULL))) {
  926. /*IF*/if (((((T832*)C))->_routine_body/*32*/)==((void*)(NULL))) {
  927. R=1;
  928. }
  929. else {
  930. /*IF*/if (((((T832*)C))->_local_vars/*48*/)==((void*)(NULL))) {
  931. R=r592is_pre_computable(((T592*)((((T832*)C))->_routine_body/*32*/)));
  932. }
  933. /*FI*/}
  934. /*FI*/}
  935. /*FI*/return R;
  936. }
  937. T0* r832clients(T832* C){
  938. T0* R=NULL;
  939. T0* _bfbc=NULL;
  940. T0* _bc=NULL;
  941. /*IF*/if (((((T832*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
  942. _bc=X291base_class((((T832*)C))->_current_type/*4*/);
  943. _bfbc=(((T297*)((T297*)((((T832*)C))->_base_feature/*44*/))))->_base_class/*4*/;
  944. /*IF*/if ((_bc)==((void*)(_bfbc))) {
  945. R=(((T297*)((T297*)((((T832*)C))->_base_feature/*44*/))))->_clients/*24*/;
  946. }
  947. else {
  948. R=r605clients_for(((T605*)_bc),(((T832*)C))->_name/*16*/);
  949. }
  950. /*FI*/C->_clients_memory=R;
  951. }
  952. else {
  953. R=(((T832*)C))->_clients_memory/*8*/;
  954. }
  955. /*FI*/return R;
  956. }
  957. int r832use_current(T832* C){
  958. int R=0;
  959. {int z1=(((T832*)C))->_use_current_state/*40*/;
  960.  
  961. if((1004==z1)){
  962. R=1;
  963. }
  964.  else 
  965. if((1003==z1)){
  966. }
  967.  else 
  968. if((1005==z1)){
  969. C->_use_current_state=1006;
  970. r832compute_use_current(C);
  971. R=r832use_current(C);
  972. }
  973.  else {R=1;
  974. }}
  975. return R;
  976. }
  977. void r832jvm_define(T832* C){
  978. r832method_info_start(C);
  979. r832jvm_define_opening(C);
  980. /*IF*/if (((((T832*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  981. r592compile_to_jvm(((T592*)((((T832*)C))->_routine_body/*32*/)));
  982. }
  983. /*FI*/r832jvm_define_closing(C);
  984. /*[IRF3.2opcode_return*//*[IRF3.6add_u1*/{int b1=177;
  985. r226add_last(((T226*)(oBC256code)),b1);
  986. }/*]*/
  987. /*]*/
  988. r506finish(((T506*)(oBC364method_info)));
  989. }
  990. int r832jvm_local_variable_offset(T832* C,T0* a1){
  991. int R=0;
  992. R=X291jvm_stack_space((((T832*)C))->_current_type/*4*/);
  993. /*IF*/if (((((T832*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  994. R=(R)+(r31jvm_stack_space(((T31*)((((T832*)C))->_arguments/*20*/))));
  995. }
  996. /*FI*/R=(R)+(r620jvm_offset_of(((T620*)((((T832*)C))->_local_vars/*48*/)),a1));
  997. return R;
  998. }
  999. /*No:RUN_FEATURE_3.clients_memory*/
  1000. void r832initialize(T832* C){
  1001. C->_arguments=(((T297*)((T297*)((((T832*)C))->_base_feature/*44*/))))->_arguments/*28*/;
  1002. /*IF*/if (((((T832*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  1003. C->_arguments=r31to_runnable(((T31*)((((T832*)C))->_arguments/*20*/)),(((T832*)C))->_current_type/*4*/);
  1004. }
  1005. /*FI*/C->_local_vars=(((T297*)((T297*)((((T832*)C))->_base_feature/*44*/))))->_local_vars/*20*/;
  1006. /*IF*/if (((((T832*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
  1007. C->_local_vars=r620to_runnable(((T620*)((((T832*)C))->_local_vars/*48*/)),(((T832*)C))->_current_type/*4*/);
  1008. }
  1009. /*FI*/C->_routine_body=(((T297*)((T297*)((((T832*)C))->_base_feature/*44*/))))->_routine_body/*52*/;
  1010. /*IF*/if (((((T832*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  1011. C->_routine_body=r592to_runnable(((T592*)((((T832*)C))->_routine_body/*32*/)),(((T832*)C))->_current_type/*4*/);
  1012. }
  1013. /*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
  1014. C->_require_assertion=r297run_require((T0*)C);
  1015. }
  1016. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  1017. C->_ensure_assertion=r297run_ensure((T0*)C);
  1018. }
  1019. /*FI*/}
  1020. /*No:RUN_FEATURE_3.afd_check*/
  1021. /*No:RUN_FEATURE_3.update_tmp_jvm_descriptor*/
  1022. T0* r530add_comment(T530* C,T0* a1){
  1023. T0* R=NULL;
  1024. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1025. R=(T0*)C;
  1026. }
  1027.  else {/*AT*//*IF*/if ((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(1)) {
  1028. R=(T0*)C;
  1029. }
  1030. else {
  1031. {T46*n=malloc(sizeof(*n));
  1032. *n=M46;
  1033. r46make(n,(T0*)C,a1);
  1034. R=(T0*)n;
  1035. }
  1036. }
  1037. /*FI*/}
  1038. /*FI*/return R;
  1039. }
  1040. /*No:IFTHENELSE.static_false*/
  1041. /*No:IFTHENELSE.make*/
  1042. /*No:IFTHENELSE.nb_errors*/
  1043. /*No:IFTHENELSE.set_else_compound*/
  1044. /*No:IFTHENELSE.static_true*/
  1045. /*No:IFTHENELSE.start_position*/
  1046. T0* r530to_runnable(T530* C,T0* a1){
  1047. T0* R=NULL;
  1048. T0* _ec=NULL;
  1049. T0* _itl=NULL;
  1050. int _ne=0;
  1051. _ne=/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/;
  1052. /*IF*/if (((((T530*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  1053. C->_run_compound=a1;
  1054. _itl=r712to_runnable(((T712*)((((T530*)C))->_ifthenlist/*12*/)),a1);
  1055. /*IF*/if ((_itl)==((void*)(NULL))) {
  1056. }
  1057. else {
  1058. C->_ifthenlist=_itl;
  1059. }
  1060. /*FI*//*IF*/if ((((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)-(_ne))==(0))&&(((((T530*)C))->_else_compound/*16*/)!=((void*)(NULL)))) {
  1061. _ec=r592to_runnable(((T592*)((((T530*)C))->_else_compound/*16*/)),r530current_type(C));
  1062. /*IF*/if ((_ec)==((void*)(NULL))) {
  1063. }
  1064. else {
  1065. C->_else_compound=_ec;
  1066. }
  1067. /*FI*/}
  1068. /*FI*//*IF*/if ((_itl)!=((void*)(NULL))) {
  1069. R=(T0*)C;
  1070. }
  1071. /*FI*/}
  1072. else {
  1073. R=r530to_runnable(((T530*)(r530twin(C))),a1);
  1074. }
  1075. /*FI*/return R;
  1076. }
  1077. T0* r530twin(T530* C){
  1078. T0* R=NULL;
  1079. R=malloc(sizeof(*C));
  1080. *((T530*)R)=M530;
  1081. r530copy(((T530*)R),((T0*)C));
  1082. return R;
  1083. }
  1084. /*No:IFTHENELSE.ifthenlist*/
  1085. /*No:IFTHENELSE.else_compound*/
  1086. void r530copy(T530* C,T0* a1){
  1087. C->_start_position=(((T530*)((T530*)a1)))->_start_position/*8*/;
  1088. C->_ifthenlist=(((T530*)((T530*)a1)))->_ifthenlist/*12*/;
  1089. C->_else_compound=(((T530*)((T530*)a1)))->_else_compound/*16*/;
  1090. }
  1091. T0* r530current_type(T530* C){
  1092. T0* R=NULL;
  1093. /*IF*/if (((((T530*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  1094. R=(((T592*)((T592*)((((T530*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  1095. }
  1096. /*FI*/return R;
  1097. }
  1098. /*No:IFTHENELSE.run_compound*/
  1099. /*No:IFTHENELSE.non_static*/
  1100. void r530compile_to_jvm(T530* C){
  1101. int _static_value=0;
  1102. _static_value=r712compile_to_jvm(((T712*)((((T530*)C))->_ifthenlist/*12*/)));
  1103. {int z1=_static_value;
  1104.  
  1105. if((1020==z1)){
  1106. /*IF*/if (((((T530*)C))->_else_compound/*16*/)!=((void*)(NULL))) {
  1107. r592compile_to_jvm(((T592*)((((T530*)C))->_else_compound/*16*/)));
  1108. }
  1109. /*FI*/}
  1110.  else 
  1111. if((1019==z1)){
  1112. r712compile_to_jvm_resolve_branch(((T712*)((((T530*)C))->_ifthenlist/*12*/)));
  1113. }
  1114.  else {/*IF*/if (((((T530*)C))->_else_compound/*16*/)!=((void*)(NULL))) {
  1115. r592compile_to_jvm(((T592*)((((T530*)C))->_else_compound/*16*/)));
  1116. }
  1117. /*FI*/r712compile_to_jvm_resolve_branch(((T712*)((((T530*)C))->_ifthenlist/*12*/)));
  1118. }}
  1119. }
  1120. /*No:IFTHENELSE.is_pre_computable*/
  1121. int r530use_current(T530* C){
  1122. int R=0;
  1123. /*IF*/if (r712use_current(((T712*)((((T530*)C))->_ifthenlist/*12*/)))) {
  1124. R=1;
  1125. }
  1126.  else if (((((T530*)C))->_else_compound/*16*/)!=((void*)(NULL))) {
  1127. R=r592use_current(((T592*)((((T530*)C))->_else_compound/*16*/)));
  1128. }
  1129. /*FI*/return R;
  1130. }
  1131. void r530add_if_then(T530* C,T0* a1,T0* a2){
  1132. T0* _ifthen=NULL;
  1133. {T809*n=malloc(sizeof(*n));
  1134. *n=M809;
  1135. r809make(n,a1,a2);
  1136. _ifthen=(T0*)n;
  1137. }
  1138. /*IF*/if (((((T530*)C))->_ifthenlist/*12*/)==((void*)(NULL))) {
  1139. {T712*n=malloc(sizeof(*n));
  1140. *n=M712;
  1141. /*[IRF3.3make*/((((T712*)(n)))->_list)=(se_ma948(1,_ifthen));
  1142. /*]*/
  1143. C->_ifthenlist=(T0*)n;
  1144. }
  1145. }
  1146. else {
  1147. /*[IRF3.5add_last*/r948add_last(((T948*)((((T712*)((T712*)((((T530*)C))->_ifthenlist/*12*/))))->_list/*0*/)),_ifthen);
  1148. /*]*/
  1149. }
  1150. /*FI*/}
  1151. /*No:IFTHENELSE.end_mark_comment*/
  1152. void r530afd_check(T530* C){
  1153. r712afd_check(((T712*)((((T530*)C))->_ifthenlist/*12*/)));
  1154. /*IF*/if (((((T530*)C))->_else_compound/*16*/)!=((void*)(NULL))) {
  1155. r592afd_check(((T592*)((((T530*)C))->_else_compound/*16*/)));
  1156. }
  1157. /*FI*/}
  1158. /*No:EXTERNAL_PROCEDURE.arguments*/
  1159. T0* r883try_to_undefine(T883* C,T0* a1,T0* a2){
  1160. T0* R=NULL;
  1161. X776undefine_in(a1,a2);
  1162. R=r883try_to_undefine_aux(C,a1,a2);
  1163. /*IF*/if ((R)!=((void*)(NULL))) {
  1164. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T883*)C))->_clients/*20*/);
  1165. /*]*/
  1166. }
  1167. else {
  1168. r605fatal_undefine(((T605*)a2),a1);
  1169. }
  1170. /*FI*/return R;
  1171. }
  1172. /*No:EXTERNAL_PROCEDURE.is_deferred*/
  1173. /*No:EXTERNAL_PROCEDURE.fz_bad_assertion*/
  1174. T0* r883runnable(T0* a1,T0* a2,T0* a3){
  1175. T0* R=NULL;
  1176. T0* _a=NULL;
  1177. int _i=0;
  1178. /*IF*/if (!(r608empty(((T608*)a1)))) {
  1179. R=r608twin(((T608*)a1));
  1180. _i=(((T608*)((T608*)R)))->_upper/*8*/;
  1181. while (!((_i)==(0))) {
  1182. r604push(((T604*)(oBC364small_eiffel)),a3);
  1183. _a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
  1184. /*IF*/if ((_a)==((void*)(NULL))) {
  1185. r883error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
  1186. }
  1187. else {
  1188. /*[IRF3.6put*/{T608* C1=((T608*)R);
  1189. T0* b1=_a;
  1190. int b2=_i;
  1191. ((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
  1192. }/*]*/
  1193. }
  1194. /*FI*/r604pop(((T604*)(oBC364small_eiffel)));
  1195. _i=(_i)-(1);
  1196. }
  1197. }
  1198. /*FI*/return R;
  1199. }
  1200. /*No:EXTERNAL_PROCEDURE.rescue_compound*/
  1201. void r883add_into(T883* C,T0* a1){
  1202. T0* _fn=NULL;
  1203. int _i=0;
  1204. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  1205. _i=1;
  1206. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  1207. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  1208. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  1209. _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1210. r683add_position(X776start_position(_fn));
  1211. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  1212. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  1213. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  1214. r7append(((T7*)(oBC683explanation)),b1);
  1215. }/*]*/
  1216. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1217. }
  1218. else {
  1219. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  1220. }
  1221. /*FI*/_i=(_i)+(1);
  1222. }
  1223. }
  1224. /*No:EXTERNAL_PROCEDURE.end_comment*/
  1225. T0* r883try_to_undefine_aux(T883* C,T0* a1,T0* a2){
  1226. T0* R=NULL;
  1227. {T853*n=malloc(sizeof(*n));
  1228. *n=M853;
  1229. r853from_effective(n,a1,(((T883*)C))->_arguments/*24*/,(((T883*)C))->_require_assertion/*32*/,(((T883*)C))->_ensure_assertion/*36*/,a2);
  1230. R=(T0*)n;
  1231. }
  1232. return R;
  1233. }
  1234. void r883make(T883* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
  1235. r883make_routine(C,a1,a2,a3,a4,a5);
  1236. r883make_external_routine(C,a6,a7);
  1237. }
  1238. /*No:EXTERNAL_PROCEDURE.nb_errors*/
  1239. /*No:EXTERNAL_PROCEDURE.native*/
  1240. void r883make_routine(T883* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1241. r883make_e_feature(C,a1,NULL);
  1242. C->_header_comment=a4;
  1243. C->_arguments=a2;
  1244. C->_obsolete_mark=a3;
  1245. C->_require_assertion=a5;
  1246. }
  1247. void r883set_header_comment(T883* C,T0* a1){
  1248. /*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
  1249. C->_end_comment=a1;
  1250. }
  1251. /*FI*/}
  1252. T0* r883start_position(T883* C){
  1253. T0* R=NULL;
  1254. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  1255. return R;
  1256. }
  1257. T0* r883to_run_feature(T883* C,T0* a1,T0* a2){
  1258. T0* R=NULL;
  1259. r883check_obsolete(C);
  1260. {T906*n=malloc(sizeof(*n));
  1261. *n=M906;
  1262. r906make(n,a1,a2,(T0*)C);
  1263. R=(T0*)n;
  1264. }
  1265. return R;
  1266. }
  1267. /*No:EXTERNAL_PROCEDURE.alias_string*/
  1268. /*No:EXTERNAL_PROCEDURE.ensure_assertion*/
  1269. /*No:EXTERNAL_PROCEDURE.code_require*/
  1270. T0* r883run_ensure(T0* a1){
  1271. T0* R=NULL;
  1272. T0* _r=NULL;
  1273. r608clear(((T608*)(oBC359assertion_collector)));
  1274. /*[IRF3.3clear*/{T0* _default_item=NULL;
  1275. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  1276. }/*]*/
  1277. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
  1278. _r=r883runnable(oBC359assertion_collector,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
  1279. /*IF*/if ((_r)!=((void*)(NULL))) {
  1280. {T633*n=malloc(sizeof(*n));
  1281. *n=M633;
  1282. r633from_runnable(n,_r);
  1283. R=(T0*)n;
  1284. }
  1285. /*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
  1286. /*]*/
  1287. /*[IRF3.3clear*/{T0* _default_item=NULL;
  1288. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  1289. }/*]*/
  1290. }
  1291. /*FI*/return R;
  1292. }
  1293. T0* r883run_require(T0* a1){
  1294. T0* R=NULL;
  1295. T0* _ar=NULL;
  1296. T0* _hc=NULL;
  1297. T0* _er=NULL;
  1298. T0* _r=NULL;
  1299. int _i=0;
  1300. r522clear(((T522*)(oBC359require_collector)));
  1301. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
  1302. /*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
  1303. _i=1;
  1304. while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
  1305. _er=r522item(((T522*)(oBC359require_collector)),_i);
  1306. _hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
  1307. /*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
  1308. _r=r883runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
  1309. /*IF*/if ((_r)!=((void*)(NULL))) {
  1310. {T343*n=malloc(sizeof(*n));
  1311. *n=M343;
  1312. r343from_runnable(n,_r);
  1313. _er=(T0*)n;
  1314. }
  1315. /*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
  1316. /*]*/
  1317. /*IF*/if ((_ar)==((void*)(NULL))) {
  1318. _ar=se_ma522(1,_er);
  1319. }
  1320. else {
  1321. r522add_last(((T522*)_ar),_er);
  1322. }
  1323. /*FI*/}
  1324. /*FI*/}
  1325. /*FI*/_i=(_i)+(1);
  1326. }
  1327. /*IF*/if ((_ar)!=((void*)(NULL))) {
  1328. {T567*n=malloc(sizeof(*n));
  1329. *n=M567;
  1330. /*[IRF3.3make*/((((T567*)(n)))->_list)=(_ar);
  1331. /*]*/
  1332. R=(T0*)n;
  1333. }
  1334. }
  1335. /*FI*/}
  1336. /*FI*/return R;
  1337. }
  1338. /*No:EXTERNAL_PROCEDURE.result_type*/
  1339. /*No:EXTERNAL_PROCEDURE.fz_03*/
  1340. /*No:EXTERNAL_PROCEDURE.em1*/
  1341. /*No:EXTERNAL_PROCEDURE.obsolete_mark*/
  1342. /*No:EXTERNAL_PROCEDURE.set_clients*/
  1343. /*No:EXTERNAL_PROCEDURE.em2*/
  1344. /*No:EXTERNAL_PROCEDURE.names*/
  1345. /*No:EXTERNAL_PROCEDURE.require_assertion*/
  1346. /*No:EXTERNAL_PROCEDURE.code_ensure*/
  1347. void r883set_rescue_compound(T883* C,T0* a1){
  1348. /*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
  1349. r883error(r883start_position(C),((T0*)ms6_368));
  1350. }
  1351. /*FI*/C->_rescue_compound=a1;
  1352. }
  1353. void r883make_external_routine(T883* C,T0* a1,T0* a2){
  1354. C->_native=a1;
  1355. C->_alias_string=a2;
  1356. }
  1357. int r883can_hide(T883* C,T0* a1,T0* a2){
  1358. int R=0;
  1359. /*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1360. /*IF*/if ((((((T883*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1361. r683add_position(X359start_position(a1));
  1362. r883error(r883start_position(C),((T0*)ms5_359));
  1363. }
  1364. /*FI*/}
  1365. /*FI*//*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  1366. /*IF*/if ((((((T883*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  1367. r683add_position(X359start_position(a1));
  1368. r883error(r883start_position(C),((T0*)ms6_359));
  1369. }
  1370.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T883*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  1371. r683add_position(X359start_position(a1));
  1372. r883error(r883start_position(C),((T0*)ms7_359));
  1373. }
  1374. /*FI*/}
  1375. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1376. /*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1377. /*IF*/if (!(X291is_a_in((((T883*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1378. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1379. r7append(((T7*)(oBC683explanation)),b1);
  1380. }/*]*/
  1381. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  1382. r7append(((T7*)(oBC683explanation)),b1);
  1383. }/*]*/
  1384. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1385. }
  1386. /*FI*/}
  1387. /*FI*/}
  1388. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1389. /*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  1390. /*IF*/if (!(r31is_a_in(((T31*)((((T883*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  1391. r683add_position(X359start_position(a1));
  1392. r683add_position(r883start_position(C));
  1393. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1394. r7append(((T7*)(oBC683explanation)),b1);
  1395. }/*]*/
  1396. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  1397. r7append(((T7*)(oBC683explanation)),b1);
  1398. }/*]*/
  1399. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1400. }
  1401. /*FI*/}
  1402. /*FI*/}
  1403. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1404. return R;
  1405. }
  1406. /*No:EXTERNAL_PROCEDURE.header_comment*/
  1407. int r883is_merge_with(T883* C,T0* a1,T0* a2){
  1408. int R=0;
  1409. /*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1410. /*IF*/if ((((((T883*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1411. r683add_position(X359start_position(a1));
  1412. r883error(r883start_position(C),((T0*)ms2_359));
  1413. }
  1414. /*FI*/}
  1415. /*FI*//*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  1416. /*IF*/if ((((((T883*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  1417. r683add_position(X359start_position(a1));
  1418. r883error(r883start_position(C),((T0*)ms3_359));
  1419. }
  1420.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T883*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  1421. r683add_position(X359start_position(a1));
  1422. r883error(r883start_position(C),((T0*)ms4_359));
  1423. }
  1424. /*FI*/}
  1425. /*FI*//*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1426. /*IF*/if (!(X291is_a_in((((T883*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1427. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  1428. }
  1429. /*FI*/}
  1430. /*FI*//*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  1431. /*IF*/if (!(r31is_a_in(((T31*)((((T883*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  1432. r683add_position(X359start_position(a1));
  1433. r883error(r883start_position(C),((T0*)ms12_359));
  1434. }
  1435. /*FI*/}
  1436. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1437. return R;
  1438. }
  1439. /*No:EXTERNAL_PROCEDURE.fz_dot*/
  1440. /*No:EXTERNAL_PROCEDURE.set_ensure_assertion*/
  1441. /*No:EXTERNAL_PROCEDURE.first_name*/
  1442. /*No:EXTERNAL_PROCEDURE.clients*/
  1443. int r883use_current(T883* C){
  1444. int R=0;
  1445. R=X845use_current((((T883*)C))->_native/*48*/,(T0*)C);
  1446. return R;
  1447. }
  1448. void r883collect_for(T883* C,int a1){
  1449. /*IF*/if ((a1)==(1001)) {
  1450. /*IF*/if (((((T883*)C))->_require_assertion/*32*/)!=((void*)(NULL))) {
  1451. /*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T883*)C))->_require_assertion/*32*/))) {
  1452. r522add_last(((T522*)(oBC359require_collector)),(((T883*)C))->_require_assertion/*32*/);
  1453. }
  1454. /*FI*/}
  1455. /*FI*/}
  1456. else {
  1457. /*IF*/if (((((T883*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  1458. /*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T883*)C))->_ensure_assertion/*36*/))))->_header_comment/*4*/);
  1459. /*]*/
  1460. r633add_into(((T633*)((((T883*)C))->_ensure_assertion/*36*/)),oBC359assertion_collector);
  1461. }
  1462. /*FI*/}
  1463. /*FI*/}
  1464. void r883error(T0* a1,T0* a2){
  1465. r683add_position(a1);
  1466. r683error(((T683*)(oBC364eh)),a2);
  1467. }
  1468. /*No:EXTERNAL_PROCEDURE.base_class*/
  1469. void r883make_e_feature(T883* C,T0* a1,T0* a2){
  1470. C->_names=a1;
  1471. C->_result_type=a2;
  1472. }
  1473. void r883check_obsolete(T883* C){
  1474. /*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
  1475. /*IF*/if (((((T883*)C))->_obsolete_mark/*28*/)!=((void*)(NULL))) {
  1476. /*[IRF3.6append*/{T0* b1=((T0*)ms7_368);
  1477. r7append(((T7*)(oBC683explanation)),b1);
  1478. }/*]*/
  1479. /*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T883*)C))->_obsolete_mark/*28*/))))->_to_string/*16*/;
  1480. r7append(((T7*)(oBC683explanation)),b1);
  1481. }/*]*/
  1482. r883warning(r883start_position(C),((T0*)ms137_470));
  1483. }
  1484. /*FI*/}
  1485. /*FI*/}
  1486. void r883warning(T0* a1,T0* a2){
  1487. r683add_position(a1);
  1488. r683warning(((T683*)(oBC364eh)),a2);
  1489. }
  1490. /*No:GC_HANDLER.make*/
  1491. /*No:GC_HANDLER.is_on*/
  1492. /*No:TMP_NAME.li*/
  1493. /*No:TMP_NAME.co*/
  1494. /*No:TMP_NAME.fz_inherit*/
  1495. int r511isa_keyword(void){
  1496. int R=0;
  1497. char _c=0;
  1498. _c=r3to_lower(/*(IRF4.6item*/((((T7*)((T7*)(oBC511tmp_string))))->_storage/*0*/)[(1)-(1)]/*)*/);
  1499. {int z1=_c;
  1500.  
  1501. if((97==z1)){
  1502. R=r511look_in(oBC511keyword_a);
  1503. }
  1504.  else 
  1505. if((99==z1)){
  1506. R=r511look_in(oBC511keyword_c);
  1507. }
  1508.  else 
  1509. if((100==z1)){
  1510. R=r511look_in(oBC511keyword_d);
  1511. }
  1512.  else 
  1513. if((101==z1)){
  1514. R=r511look_in(oBC511keyword_e);
  1515. }
  1516.  else 
  1517. if((102==z1)){
  1518. R=r511look_in(oBC511keyword_f);
  1519. }
  1520.  else 
  1521. if((105==z1)){
  1522. R=r511look_in(oBC511keyword_i);
  1523. }
  1524.  else 
  1525. if((108==z1)){
  1526. R=r511look_in(oBC511keyword_l);
  1527. }
  1528.  else 
  1529. if((111==z1)){
  1530. R=r511look_in(oBC511keyword_o);
  1531. }
  1532.  else 
  1533. if((112==z1)){
  1534. R=r7same_as(((T7*)(((T0*)ms37_470))),oBC511tmp_string);
  1535. }
  1536.  else 
  1537. if((114==z1)){
  1538. R=r511look_in(oBC511keyword_r);
  1539. }
  1540.  else 
  1541. if((115==z1)){
  1542. R=r511look_in(oBC511keyword_s);
  1543. }
  1544.  else 
  1545. if((116==z1)){
  1546. R=r511look_in(oBC511keyword_t);
  1547. }
  1548.  else 
  1549. if((117==z1)){
  1550. R=r511look_in(oBC511keyword_u);
  1551. }
  1552.  else 
  1553. if((118==z1)){
  1554. R=r7same_as(((T7*)(((T0*)ms51_470))),oBC511tmp_string);
  1555. }
  1556.  else 
  1557. if((119==z1)){
  1558. R=r7same_as(((T7*)(((T0*)ms52_470))),oBC511tmp_string);
  1559. }
  1560.  else 
  1561. if((120==z1)){
  1562. R=r7same_as(((T7*)(((T0*)ms50_473))),oBC511tmp_string);
  1563. }
  1564. }
  1565. return R;
  1566. }
  1567. /*No:TMP_NAME.fz_select*/
  1568. /*No:TMP_NAME.fz_creation*/
  1569. T0*oBC511keyword_s=NULL;
  1570. T0*oBC511keyword_c=NULL;
  1571. /*No:TMP_NAME.fz_old*/
  1572. T0* r511to_e_result(T511* C){
  1573. T0* R=NULL;
  1574. {T715*n=malloc(sizeof(*n));
  1575. *n=M715;
  1576. r715make(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
  1577. R=(T0*)n;
  1578. }
  1579. return R;
  1580. }
  1581. T0* r511to_local_name1(T511* C){
  1582. T0* R=NULL;
  1583. {T39*n=malloc(sizeof(*n));
  1584. *n=M39;
  1585. r39make(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/),oBC511tmp_string);
  1586. R=(T0*)n;
  1587. }
  1588. return R;
  1589. }
  1590. T0* r511to_e_current(T511* C){
  1591. T0* R=NULL;
  1592. {T358*n=malloc(sizeof(*n));
  1593. *n=M358;
  1594. r358make(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/),1);
  1595. R=(T0*)n;
  1596. }
  1597. return R;
  1598. }
  1599. /*No:TMP_NAME.extend*/
  1600. /*No:TMP_NAME.fz_separate*/
  1601. /*No:TMP_NAME.fz_deferred*/
  1602. T0*oBC511keyword_t=NULL;
  1603. T0*oBC511keyword_d=NULL;
  1604. /*No:TMP_NAME.fz_else*/
  1605. /*No:TMP_NAME.fz_end*/
  1606. T0* r511to_e_void(T511* C){
  1607. T0* R=NULL;
  1608. {T796*n=malloc(sizeof(*n));
  1609. *n=M796;
  1610. r796make(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
  1611. R=(T0*)n;
  1612. }
  1613. return R;
  1614. }
  1615. int r511is_current(void){
  1616. int R=0;
  1617. /*IF*/if (((((T7*)((T7*)(oBC511tmp_string))))->_count/*4*/)==(7)) {
  1618. R=r7same_as(((T7*)(((T0*)ms143_473))),oBC511tmp_string);
  1619. }
  1620. /*FI*/return R;
  1621. }
  1622. T0*oBC511keyword_u=NULL;
  1623. T0*oBC511keyword_e=NULL;
  1624. /*No:TMP_NAME.us_and*/
  1625. T0* r511to_local_name2(T511* C,T0* a1,int a2){
  1626. T0* R=NULL;
  1627. {T23*n=malloc(sizeof(*n));
  1628. *n=M23;
  1629. r23refer_to(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/),a1,a2);
  1630. R=(T0*)n;
  1631. }
  1632. return R;
  1633. }
  1634. T0* r511to_argument_name1(T511* C){
  1635. T0* R=NULL;
  1636. {T873*n=malloc(sizeof(*n));
  1637. *n=M873;
  1638. r873make(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/),oBC511tmp_string);
  1639. R=(T0*)n;
  1640. }
  1641. return R;
  1642. }
  1643. T0*oBC511keyword_f=NULL;
  1644. /*No:TMP_NAME.make*/
  1645. /*No:TMP_NAME.us_current*/
  1646. /*No:TMP_NAME.fz_rescue*/
  1647. T0* r511to_string(T511* C){
  1648. T0* R=NULL;
  1649. /*IF*/if (((((T511*)C))->_unique_string_memory/*0*/)==((void*)(NULL))) {
  1650. R=r902item(oBC511tmp_string);
  1651. C->_unique_string_memory=R;
  1652. }
  1653. else {
  1654. R=(((T511*)C))->_unique_string_memory/*0*/;
  1655. }
  1656. /*FI*/return R;
  1657. }
  1658. T0* r511to_class_name(T511* C){
  1659. T0* R=NULL;
  1660. {T451*n=malloc(sizeof(*n));
  1661. *n=M451;
  1662. r451make(n,oBC511tmp_string,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
  1663. R=(T0*)n;
  1664. }
  1665. return R;
  1666. }
  1667. T0* r511to_tag_name(T511* C){
  1668. T0* R=NULL;
  1669. {T490*n=malloc(sizeof(*n));
  1670. *n=M490;
  1671. r490make(n,oBC511tmp_string,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
  1672. R=(T0*)n;
  1673. }
  1674. return R;
  1675. }
  1676. /*No:TMP_NAME.unique_string_memory*/
  1677. T0* r511to_argument_name2(T511* C,T0* a1,int a2){
  1678. T0* R=NULL;
  1679. {T886*n=malloc(sizeof(*n));
  1680. *n=M886;
  1681. r886refer_to(n,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/),a1,a2);
  1682. R=(T0*)n;
  1683. }
  1684. return R;
  1685. }
  1686. /*No:TMP_NAME.fz_external*/
  1687. T0* r511start_position(T511* C){
  1688. T0* R=NULL;
  1689. {T627*n=malloc(sizeof(*n));
  1690. *n=M627;
  1691. r627make(n,(((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/);
  1692. R=(T0*)n;
  1693. }
  1694. return R;
  1695. }
  1696. /*No:TMP_NAME.fz_prefix*/
  1697. /*No:TMP_NAME.fz_export*/
  1698. /*No:TMP_NAME.fz_all*/
  1699. /*No:TMP_NAME.fz_invariant*/
  1700. /*No:TMP_NAME.fz_feature*/
  1701. /*No:TMP_NAME.fz_true*/
  1702. T0* r511to_infix_name_use(T511* C){
  1703. T0* R=NULL;
  1704. {T454*n=malloc(sizeof(*n));
  1705. *n=M454;
  1706. r454make(n,oBC511tmp_string,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
  1707. R=(T0*)n;
  1708. }
  1709. return R;
  1710. }
  1711. /*No:TMP_NAME.fz_if*/
  1712. T0*oBC511keyword_i=NULL;
  1713. /*No:TMP_NAME.fz_inspect*/
  1714. /*No:TMP_NAME.fz_alias*/
  1715. /*No:TMP_NAME.fz_debug*/
  1716. int r511is_result(void){
  1717. int R=0;
  1718. /*IF*/if (((((T7*)((T7*)(oBC511tmp_string))))->_count/*4*/)==(6)) {
  1719. R=r7same_as(((T7*)(((T0*)ms146_473))),oBC511tmp_string);
  1720. }
  1721. /*FI*/return R;
  1722. }
  1723. /*No:TMP_NAME.fz_rename*/
  1724. /*No:TMP_NAME.fz_from*/
  1725. /*No:TMP_NAME.fz_unique*/
  1726. /*No:TMP_NAME.fz_once*/
  1727. /*No:TMP_NAME.fz_loop*/
  1728. /*No:TMP_NAME.fz_do*/
  1729. /*No:TMP_NAME.us_result*/
  1730. /*No:TMP_NAME.us_implies*/
  1731. T0*oBC511tmp_string=NULL;
  1732. T0*oBC511keyword_l=NULL;
  1733. /*No:TMP_NAME.fz_obsolete*/
  1734. /*No:TMP_NAME.fz_as*/
  1735. /*No:TMP_NAME.fz_false*/
  1736. /*No:TMP_NAME.fz_elseif*/
  1737. T0* r511to_infix_name(T0* a1){
  1738. T0* R=NULL;
  1739. {T454*n=malloc(sizeof(*n));
  1740. *n=M454;
  1741. r454make(n,oBC511tmp_string,a1);
  1742. R=(T0*)n;
  1743. }
  1744. return R;
  1745. }
  1746. T0* r511to_prefix_name(T511* C){
  1747. T0* R=NULL;
  1748. {T406*n=malloc(sizeof(*n));
  1749. *n=M406;
  1750. r406make(n,oBC511tmp_string,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
  1751. R=(T0*)n;
  1752. }
  1753. return R;
  1754. }
  1755. T0* r511pos(int a1,int a2){
  1756. T0* R=NULL;
  1757. {T627*n=malloc(sizeof(*n));
  1758. *n=M627;
  1759. r627make(n,a1,a2);
  1760. R=(T0*)n;
  1761. }
  1762. return R;
  1763. }
  1764. /*No:TMP_NAME.fz_variant*/
  1765. /*No:TMP_NAME.fz_redefine*/
  1766. /*No:TMP_NAME.fz_like*/
  1767. int r511is_void(void){
  1768. int R=0;
  1769. /*IF*/if (((((T7*)((T7*)(oBC511tmp_string))))->_count/*4*/)==(4)) {
  1770. R=r7same_as(((T7*)(((T0*)ms147_473))),oBC511tmp_string);
  1771. }
  1772. /*FI*/return R;
  1773. }
  1774. /*No:TMP_NAME.us_xor*/
  1775. /*No:TMP_NAME.fz_frozen*/
  1776. /*No:TMP_NAME.fz_undefine*/
  1777. T0*oBC511keyword_o=NULL;
  1778. T0* r511to_simple_feature_name(T511* C){
  1779. T0* R=NULL;
  1780. {T446*n=malloc(sizeof(*n));
  1781. *n=M446;
  1782. r446make(n,oBC511tmp_string,r511pos((((T511*)C))->_li/*8*/,(((T511*)C))->_co/*4*/));
  1783. R=(T0*)n;
  1784. }
  1785. return R;
  1786. }
  1787. /*No:TMP_NAME.fz_is*/
  1788. /*No:TMP_NAME.fz_ensure*/
  1789. int r511look_in(T0* a1){
  1790. int R=0;
  1791. int _i=0;
  1792. _i=(((T52*)((T52*)a1)))->_upper/*8*/;
  1793. while (!((R)||((_i)==(0)))) {
  1794. R=r7same_as(((T7*)(r52item(((T52*)a1),_i))),oBC511tmp_string);
  1795. _i=(_i)-(1);
  1796. }
  1797. return R;
  1798. }
  1799. /*No:TMP_NAME.us_void*/
  1800. /*No:TMP_NAME.fz_local*/
  1801. /*No:TMP_NAME.fz_indexing*/
  1802. /*No:TMP_NAME.fz_require*/
  1803. /*No:TMP_NAME.count*/
  1804. /*No:TMP_NAME.fz_when*/
  1805. /*No:TMP_NAME.fz_then*/
  1806. /*No:TMP_NAME.fz_until*/
  1807. T0*oBC511keyword_a=NULL;
  1808. /*No:TMP_NAME.fz_check*/
  1809. void r511initialize(T511* C,int a1,int a2){
  1810. C->_li=a1;
  1811. C->_co=a2;
  1812. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC511tmp_string)))))->_count)=(0);
  1813. /*]*/
  1814. C->_unique_string_memory=NULL;
  1815. }
  1816. /*No:TMP_NAME.fz_expanded*/
  1817. T0*oBC511keyword_r=NULL;
  1818. /*No:TMP_NAME.fz_infix*/
  1819. /*No:TMP_NAME.fz_class*/
  1820. /*No:TMP_NAME.us_or*/
  1821. /*No:TMP_NAME.fz_retry*/
  1822. /*No:TMP_NAME.fz_strip*/
  1823. T0*oBC95cp=NULL;
  1824. int r95idx_methodref1(T95* C,int a1,T0* a2,T0* a3){
  1825. int R=0;
  1826. int _nt=0;
  1827. _nt=r95idx_name_and_type2(C,a2,a3);
  1828. R=r95idx_methodref2(C,a1,_nt);
  1829. return R;
  1830. }
  1831. int r95idx_uft8(T95* C,T0* a1){
  1832. int R=0;
  1833. R=(((T95*)C))->_cp_up/*0*/;
  1834. while (!(((R)==(0))||(r378is_uft8_idx(((T378*)(/*(IRF4.6item*/((((T515*)((T515*)(oBC95cp))))->_storage/*0*/)[R]/*)*/)),a1)))) {
  1835. R=(R)-(1);
  1836. }
  1837. /*IF*/if ((R)==(0)) {
  1838. r95string_to_uft8(a1,oBC95tmp_info);
  1839. r378set_uft8(((T378*)(r95add_last(C))),oBC95tmp_info);
  1840. R=(((T95*)C))->_cp_up/*0*/;
  1841. }
  1842. /*FI*/return R;
  1843. }
  1844. /*No:CONSTANT_POOL.tmp_info_append_u2*/
  1845. int r95idx_eiffel_string_storage_fieldref(T95* C){
  1846. int R=0;
  1847. int _idx=0;
  1848. _idx=r95idx_name_and_type2(C,((T0*)ms130_473),((T0*)ms163_470));
  1849. R=r95idx_fieldref2(C,r95idx_eiffel_string_class(C),_idx);
  1850. return R;
  1851. }
  1852. /*No:CONSTANT_POOL.us_generator*/
  1853. int r95idx_name_and_type1(T95* C,T0* a1,int a2){
  1854. int R=0;
  1855. int _n=0;
  1856. _n=r95idx_uft8(C,a1);
  1857. R=r95idx_name_and_type3(C,_n,a2);
  1858. return R;
  1859. }
  1860. int r95idx_fieldref_generating_type(T95* C,int a1){
  1861. int R=0;
  1862. int _nt=0;
  1863. int _idx=0;
  1864. _idx=r95idx_eiffel_string_descriptor(C);
  1865. _nt=r95idx_name_and_type1(C,((T0*)ms78_473),_idx);
  1866. R=r95idx_fieldref2(C,a1,_nt);
  1867. return R;
  1868. }
  1869. int fBC95jvm_string_class=0;
  1870. T0*oBC95jvm_string_class=NULL;
  1871. T0* r95jvm_string_class(void){
  1872. if (fBC95jvm_string_class==0){
  1873. T0* R=NULL;
  1874. fBC95jvm_string_class=1;
  1875. {T7*n=malloc(sizeof(*n));
  1876. *n=M7;
  1877. r7make(n,12);
  1878. R=(T0*)n;
  1879. }
  1880. r7append(((T7*)R),(((T228*)((T228*)(oBC364jvm))))->_output_name/*16*/);
  1881. r7extend(((T7*)R),'\57');
  1882. r7append(((T7*)R),((T0*)ms156_470));
  1883. oBC95jvm_string_class=R;}
  1884. return oBC95jvm_string_class;}
  1885. int fBC95jvm_string_descriptor=0;
  1886. T0*oBC95jvm_string_descriptor=NULL;
  1887. T0* r95jvm_string_descriptor(void){
  1888. if (fBC95jvm_string_descriptor==0){
  1889. T0* R=NULL;
  1890. fBC95jvm_string_descriptor=1;
  1891. {T7*n=malloc(sizeof(*n));
  1892. *n=M7;
  1893. r7make(n,12);
  1894. R=(T0*)n;
  1895. }
  1896. r7extend(((T7*)R),'L');
  1897. r7append(((T7*)R),r95jvm_string_class());
  1898. r7extend(((T7*)R),'\73');
  1899. oBC95jvm_string_descriptor=R;}
  1900. return oBC95jvm_string_descriptor;}
  1901. T0*oBC95tmp_uft8=NULL;
  1902. int r95idx_methodref2(T95* C,int a1,int a2){
  1903. int R=0;
  1904. R=(((T95*)C))->_cp_up/*0*/;
  1905. while (!(((R)==(0))||(r378is_methodref_idx(((T378*)(/*(IRF4.6item*/((((T515*)((T515*)(oBC95cp))))->_storage/*0*/)[R]/*)*/)),a1,a2)))) {
  1906. R=(R)-(1);
  1907. }
  1908. /*IF*/if ((R)==(0)) {
  1909. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC95tmp_info)))))->_count)=(0);
  1910. /*]*/
  1911. /*[IRF3.6tmp_info_append_u2*/{int b1=a1;
  1912. r95append_u2(oBC95tmp_info,b1);
  1913. }/*]*/
  1914. /*[IRF3.6tmp_info_append_u2*/{int b1=a2;
  1915. r95append_u2(oBC95tmp_info,b1);
  1916. }/*]*/
  1917. r378set_methodref(((T378*)(r95add_last(C))),oBC95tmp_info);
  1918. R=(((T95*)C))->_cp_up/*0*/;
  1919. }
  1920. /*FI*/return R;
  1921. }
  1922. /*No:CONSTANT_POOL.append_u1*/
  1923. int r95idx_name_and_type(T95* C,T0* a1){
  1924. int R=0;
  1925. R=r95idx_name_and_type2(C,X776to_key(/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/)),X496jvm_descriptor(a1));
  1926. return R;
  1927. }
  1928. int r95idx_fieldref_for_manifest_string(T95* C,T0* a1){
  1929. int R=0;
  1930. int _nt=0;
  1931. int _c=0;
  1932. _c=r95idx_class2(C,r95jvm_root_class());
  1933. _nt=r95idx_name_and_type2(C,a1,r95jvm_string_descriptor());
  1934. R=r95idx_fieldref2(C,_c,_nt);
  1935. return R;
  1936. }
  1937.  
  1938.